1. Field of the Invention
The present invention relates to the field of Application Programming Interface (API) implementation and, more particularly, to implementing an API utilizing a state machine embedded within a session initiation protocol (SIP) servlet.
2. Description of the Related Art
Application programming interfaces (APIs) exist as an abstraction that provides software programmers with a simple and standardized means of utilizing the functions or services of another software application, such as an operating system. An API specification represents a high-level definition of the interface or calling conventions without concern for the details of the actual implementation within the software system. Typically, an API is implemented as a software program or an additional code file, such as a dynamically linked library (.DLL) file, that translates a programmer's use of the conventions defined in the API into the lower-level code necessary to perform the selected functionality.
For example, in a WINDOWS environment, a programmer can access system functions, such as an error beep, by including the appropriate .DLL file and function call within the application's source code. A software programming environment, such as an integrated development environment (IDE), often provides a programmer with the syntax required for the inclusion of the .DLL file and function call and can make the implementation of the API transparent.
However, the complexity of the API and its implementation increases with the complexity of the computing system and the number of additional protocols used. In a service-oriented architecture (SOA), the use of the Session Initiation Protocol (SIP) relies upon timed messaging between distributed computing components in order to execute system functions. This added complexity often requires a programmer to have in-depth knowledge of how a specific API implementation behaves in order to ensure that applications perform as desired. Further, a programmer may also need to understand the functional capabilities of the underlying system components and the communication requirements between the components. Such a situation nullifies the simplicity provided by the API.
What is needed is a solution that provides a programmer with a higher level abstraction for API implementation within a complex computing system that uses SIP. That is, the solution would use an automated process to manage the SIP messaging necessary to implement an API specification. Ideally, such a solution would utilize a state machine within a SIP servlet to implement the functionality of the API and communicate with an enterprise service bus (ESB) to perform the requested operation.